//
//  main.m
//  homework-04
//
//  Created by dllo on 16/7/7.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Color.h"
#import "ColorManager.h"
int main(int argc, const char * argv[]) {
   
    // 处理⽂件crayons.txt中的⽂本信息，⽂本内容是关于颜⾊的，每⾏都是⼀ 个颜⾊的信息，例如：Almond #EED9C4，前⼀个字符串是颜⾊的名称，后⼀ 个字符串是颜⾊的16进制⾊值，处理⽂本完成如下需求:
    // 使⽤字典管理所有的颜⾊，即字典中存储的是多个键值对，颜⾊名称为 key，16进制颜⾊值（不带#）是value。
    // 使⽤⼀个新的字典管理颜⾊，对颜⾊进⾏分类管理，即：“A”，“B”，“C”… 即这个字典包含多个键值对，key是26个字⺟，value是数组，数组⾥存放的是 Color对象（包含name和colorValue）。需要⾃⼰创建Color类。
       // 获取文件中字符串的方法如下:
    // NSString *path = [[NSBundle mainBundle] pathForResource:@"crayons" ofType:@"txt"];
    // NSString *sourceStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    // 根据得到的sourceStr进行处理
    
    
    // 通过文件路径,读取文件中的字符串
    NSString *sourceStr = [NSString stringWithContentsOfFile:@"/Users/dllo/Desktop/临时文件/crayons.txt" encoding:NSUTF8StringEncoding error:nil];
    //根据\n切割字符串
    NSArray *arrOfColor = [sourceStr componentsSeparatedByString:@"\n"];
    NSLog(@"打印数组:%@", arrOfColor);
    // 声明存储颜色的可变字典
    NSMutableDictionary *colorDictionary = [NSMutableDictionary dictionary];
    for (int i = 0; i < arrOfColor.count; i++) {
        if ([arrOfColor[i] length] > 0) {
           NSArray *color = [arrOfColor[i] componentsSeparatedByString:@" #"];
            [colorDictionary setObject:[color lastObject] forKey:[color firstObject]];
        }
    }
    NSLog(@"打印字典:%@", colorDictionary);
    // 2.
    //声明新的字典
    NSMutableDictionary *newDictionary = [NSMutableDictionary dictionary];
    //在第一个创建的字典中获取key值
    NSArray *allKeys = colorDictionary.allKeys;
    for (int i = 0; i < allKeys.count; i++) {
        NSString *subString = [allKeys[i] substringWithRange:NSMakeRange(0, 1)];
        NSMutableArray *colorArray = [newDictionary objectForKey:subString];
        Color *color = [[Color alloc] init];
        color.colorName = allKeys[i];
        color.sixteenAry = [colorDictionary objectForKey:allKeys[i]];
        if (colorArray == nil) {
            colorArray = [NSMutableArray array];
            [colorArray addObject:color];
            [newDictionary setObject:colorArray forKey:subString];
        } else {
            [colorArray addObject:color];
            [newDictionary setObject:colorArray forKey:subString];
        }
    }
        NSLog(@"newDictioanry:%@", newDictionary);
    
    //****************************************
    //原因没有初始化colorManager
    ColorManager *colorMana = [[ColorManager alloc] initWithDictionary:colorDictionary];
    [colorMana addColor:arrOfColor];
    NSLog(@"1111111:%@", colorMana.firstDictionary);
    
    ColorManager *colorManag = [[ColorManager alloc] initWithDictionary:newDictionary];
    [colorManag addColorGroup:arrOfColor];
    NSLog(@"222222:%@", colorManag.secondeDictionary);
    
    
    
    
    
       return 0;
    
}
